#ifndef OBJECT_INSPECTOR_MODEL
#define OBJECT_INSPECTOR_MODEL

#include <sdk_global.h>
#include <QtGui/QStandardItemModel>
#include <QObject>
#include <QModelIndex>
#include <QList>
#include <QSharedPointer>
#include <ObjectInspectorDirector.h>
#include <ObjectInspectorItem.h>
#include <QItemSelection>
class QDESIGNER_SDK_EXPORT ObjectInspectorModel : public QStandardItemModel
{
    Q_OBJECT
public:
	ObjectInspectorModel(QObject *parent = 0);
	virtual ~ObjectInspectorModel();

	virtual void rebuild();
    virtual void refresh();
    virtual void currentItemChanged ( ObjectInspectorItem* item_ptr );
    virtual void selectionChanged(QList<ObjectInspectorItem*> item_list);


    void addDirector(QSharedPointer<ObjectInspectorDirector> director);
    QList<QSharedPointer<ObjectInspectorDirector>> getDirectorList();
public slots:
    void slotCurrentChanged ( const QModelIndex & current, const QModelIndex & previous );
    void slotSelectionChanged(const QItemSelection & selected, const QItemSelection & deselected );
private:
    QList<QSharedPointer<ObjectInspectorDirector>> m_directorList;
};

#endif // OBJECT_INSPECTOR
